Search result translation with visually overlay processing

ABSTRACT

A web browser agent or plug-in installed into a web browser of a client device provides translation services along with a search engine server. The system accesses a web page in one (local) language and then translates to another (foreign) language and displays the translated content in a web page for user&#39;s viewing. The web browser agent is an add-on software tool or plug-in, provided by the search engine server and installed into the web browser. As a result of installation, a toolbar appears on the top of the web browser&#39;s page. This toolbar provides the interface to enable local translation of web pages from a local/web language to a target/foreign language useful to the user. Centralized (cloud computing) translation services by servers of a third party may also be employed. Web pages in any number of languages may be accessed using this operations/structure.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. Ser. No. 12/437,607filed May 8, 2009, co-pending, which claims priority under 35 U.S.C.119(e) to U.S. Provisional Application Ser. No. 61/053,708, filed May16, 2008, both of which are incorporated herein by reference in theirentirety for all purposes.

BACKGROUND

1. Technical Field

The present invention relates generally to Internet infrastructures, andmore particularly to search engines.

2. Related Art

Search engines provide an added useful feature to the Internet byproviding access to a wide variety of web pages, which would otherwisehave had very limited access and use. Thus, the search ability of theInternet makes the Internet a very progressive and successful computernetwork worldwide. Many web sites (or web pages) often are totallyunknown to the general user population and these sites having a verysmall potential (if any) to advertise. Yet, these web sites arepotentially very informative and useful to the users, and users can gainquick access to these sites worldwide via various search engines. Thus,both the user population and web sites on the Internet benefit from theservices provided by search engines.

Typical uses of the search engines include searching for informationrelated to business, commercial, scientific, shopping, otherprofessional and home needs. The purposes of using search engines mayinclude shopping, seeking further information about professional needs(such as business and scientific needs), entertainment, downloadinguseful files, software, games, music, video streaming, etc.

Often these search engines have limitations in terms of providingadequate coverage or access to various web sites that are displayed andupdated in a foreign language. The content of web pages that supportonly one or more foreign languages cannot be comprehended by foreignusers when they visit a foreign land. For example, most search enginesin local regions provide web links of web pages that are displayed orkept in the local language only. In addition, when traveling or foreignusers seek information related to foreign lands, for tourism purposesfor example, they often get web pages in local languages that theycannot read or use (if they get any meaningful web site search resultsat all by processing searches in a foreign language in a foreignlocale).

For example when an American sales person, who speaks only English,visits Germany and searches for business related information for a salesrelated issue, the search engines that work locally in Germany oftenprovide information only in the German language. Therefore, this Germaninformation that is provided is often unhelpful to the English-speakinguser, and the sales person may not be able to conduct businesssuccessfully. In other circumstances, the search engines may provide webpages with some limited information provided in the English language,but these partial accommodations of foreign languages often lead tomisinterpretations or slightly less reliance on the foreign languagethat may not satisfy the user's goals. Confusion may also occur if theEnglish or foreign search terms are slang, difficult to translate orhave multiple meanings in the local language(s) supported by the localInternet.

Some search engines provide translations of web pages, but thesetranslations are not exact and do not provide clear information based onwhat was exactly written in the original language. The user often cannotsearch if there are no search terms entered in the local language in alocal or new city. Also, the search-engine-provided translation servicesmay not be available offline, when the user does not have access to theInternet. Therefore, a need exists to provide improve language supportand international features to content and searches performed on theInternet.

These and other limitations and deficiencies associated with the relatedart may be more fully appreciated by those skilled in the art aftercomparing such related art with various aspects of the present inventionas set forth herein with reference to the figures.

BRIEF SUMMARY OF THE INVENTION

The present invention is directed to apparatus and methods of operationthat are further described in the following Brief Description of theDrawings, the Detailed Description of the Invention, and the claims.Other features and advantages of the present invention will becomeapparent from the following detailed description of the invention madewith reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic block diagram illustrating an Internetinfrastructure that accesses a web page in one or more local/foreignlanguages and then utilizes the services of a web browser agent (and/orthe search engine server's translation services) to translates tolocal/foreign language and display the content in another language;

FIG. 2 is a schematic block diagram illustrating various components ofthe search engine server that provide translation services in accordancewith FIG. 1;

FIG. 3 is a schematic block diagram illustrating client sidemulti-language translator modules of the web browser agent of FIG. 1, ina multi language translation scenario, in more detail;

FIG. 4 is a screen shot or snap shot of a search result page containingweb links of web pages in accordance with the embodiment of FIG. 1;

FIG. 5 is a screen shot or snap shot of a web page in a local Germanlanguage wherein, upon clicking on a web link in the search result pageof FIG. 4, a web page translated to a target language (in this caseEnglish) is provided to the user in accordance with the embodiment ofFIG. 1;

FIG. 6 is a flow diagram illustrating the translation processfunctionality of the web browser and web browser agent of FIG. 1;

FIG. 7 is a flow diagram illustrating the functionality of the webbrowser and web browser agent of FIG. 1 during a translation processthat occurs in conjunction with a search engine server's translationservices; and

FIG. 8 is a flow diagram illustrating the functionality of the searchengine server of FIG. 1 during a translation process that is initiatedby a web browser agent in a client device.

DETAILED DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic block diagram illustrating an Internetinfrastructure 105 containing a client device 157 connected to hostservers 115 and search engine server(s) 199 over the Internet 107 orsome other wireless, wire line, optical, and/or other similar public orprivate network. The client device 157 has a web browser (notspecifically shown in FIG. 1) wherein the web browser incorporates a webbrowser agent 151, wherein the web browser utilizes the services of thesearch engine server 199 to access a web page in one language (a locallanguage) and then utilizes the services of the web browser agent 151alone or in conjunction with the search engine server's 199 translationservices to translate content from a local language to another language(a foreign or target language). Once translation is complete, the systemdisplays the translated language version with or without the originallanguage version. Specifically, the web browser agent 151 is in oneembodiment provided by the search engine server 199 as an auxiliaryonline/offline tool for language translation assistance for users of theclient device 157. The web browser agent 151 contains a plurality ofmodules that translate a downloaded web page from a first language on anInternet based server or host servers 115 (which may also be downloadedvia the search engine server 199 provided web links also) to a secondlanguage.

The first language may typically be a local language (for example,regional language for a visitor from a foreign land) and the secondlanguage may be a foreign language (for example, native language of thevisitor in the foreign land). However, the possibility of havingtranslation done from the first language to the second language among aplurality of supported languages (i.e., multi-language translation) isalso considered, rather than just having a translation between only twosupported languages. In other words, translation can occur in a dynamicmanner between any of a plurality of base languages to any of aplurality of target languages. In this case, the web browser agent 151may contain many more modules and may consume a larger share of memoryin the client device 157, so that many different languages aresupported. In other embodiments, a company, entity, or network may besuch that only a predetermined number of languages require support. Forexample, a British company doing work in China may only need to dealwith translation between English and Mandarin. In these cases, thesystem can limit the number of languages (and therefore modules) to afixed and predetermined number without losing full functionality. Themodules are generally firmware or software being stored in memory andrun on one or more central processing units (CPUs).

The original web page can be downloaded from any host server 115 in theInternet, and typically this download occurs with content in the first(local) language. In one embodiment, that page is displayed on thescreen of the client device 157 for the user to view. However, the usermay not be able to comprehend the contents of the web page as it is inthe original language, which is a local language the user may beunfamiliar with. For example, the user may be a foreign visitor whoattempts to access a local web page for information or a person whoaccesses a web page belonging to a server 115 in a foreign land in anattempt to get information about organizations or any other localinformation (e.g., for vacationing or travel). The web page could be inthe German language (local language) with a visitor from the CzechRepublic, who speaks and reads only in a Czech language (foreignlanguage).

The web browser agent 151, when downloaded from the search engine server199 site and installed into the local computer (or any other clientdevice 157), provides a toolbar on the top of the web browser screencontaining buttons for enabling translation from a first language to asecond language. In another embodiment, the web browser agent 151 mayprovide more language options for translation, thereby providing amulti-language translation mode.

The downloaded web page in the first (local) language can be translatedeither online with downloading and interacting with sites or offlineafter the connection to the network/Internet is complete. Thetranslation processes the first language into the second (foreign)language by clicking a button in the toolbar (such as a button withtitle ‘Translate to Second Language’ or ‘Translate to Target Language’,In these embodiments, the second language can be replaced by anypredetermine language such as English, German, French, Czech, Hindi,Chinese, Japanese, Spanish, etc., languages). The web browser agent 151translates the web page to the second language when initiated by theuser as mentioned above. Also, with the assistance of the web browsersoftware, the system displays the translated web page in the secondlanguage on display screen of the client device 157 (in a separatewindow or in the same window where the web page was displayed).

A client side language identification module 161 is embedded in the webbrowser agent 151. In the case of multi-language translation scenario,the client side language identification module 161 identifies the firstlanguage by initially selecting a few characters, words, or strings inthe web page. Then, the web browser agent 151 searches through a datasetin a database that contains a plurality of characters, words and stringsfrom two or more languages along with language tags (and possibly,containing conjugate terms and strings in a plurality of other languagesalong with language tags, in case of multi-language translationscenario). In other embodiments, optical character recognition andpattern recognition algorithms may be used, and such processes may bemost efficient for some dialects, such as Mandarin, Korean, Mongolian,etc., that may not be character or alphabet-based like German, English,or Spanish. Then, the web browser agent 151 translates the web page to asupported second language that the user is familiar with or has selectedvia the browser.

The translation services may be provided by the web browser agent 151.The agent 151 works in conjunction with the multi language translationservices of the search engine server 199 or the services of any otherserver 115 that provides appropriate translation over the Internet 107.The web page is typically downloaded from an Internet-based host server115 by clicking on a web link in a list of search results provided bythe search engine server 199. The list of search results is usuallyprovided in response to a query search string provided by the user inthe second language. Therefore, translation is sometimes needed in thesearch process to find the appropriate search results, in addition totranslation that may be needed before displaying selected search resultcontent to the user. The web browser agent 151, in this case, identifiesthe language of the web page (the first language) by using a few termsfrom the web page and by utilizing services of the client side languageidentification module 161. Then, the web browser agent 151 delivers aweb link of the web page, along with a tag of the first language, to thesearch engine server 199 for translation from the first language toanother language (which could be any one or more of the user's selectedlanguages). Server side multi-language translator modules 197 (a moduleincorporated into the search engine server 199), translates the web pagefrom the first language to other language(s). Then, the search engineserver 199 delivers the translated web page in the target or requestedlanguage to the web browser for display to the user.

To perform translations, the web browser agent 151 contains client sidelanguage identification module 161, client side translator module 163,translation rule module 165, conjugate terms database 167, character setidentification module 169, and client side server translation supportmodule 171. The client side language identification module 161identifies the first language by extracting a few strings, sentences, orwords from the downloaded web page and using the conjugate termsdatabase 167 or assistance of the character set identification module169 to identify the original language that is encountered. In otherembodiments, optical character recognition or shape/pattern recognitioncan be used to detect the language. In other embodiments, a web site mayidentify in the HTML or XML language coding (or other languages anddata) the host language used for the enclosed content. In oneembodiment, the conjugate terms database 167 consists of words andstrings in a plurality of predetermined languages succeeded by aplurality of words and strings expressing precise or approximatemeanings in rest of the predetermined languages, along with respectivelanguage tags.

The character set identification module 169 includes alphabets invarious languages succeeded by a language tag. The client side servertranslation support module 171 delivers the web link of the “web page tobe translated” at the search engine server 199, along with tags of thefirst/original language and a target language, to the search engineserver 199 for translation from the first language to the targetlanguage. The target language or languages are selected by the user byusing a dropdown language selection menu in the toolbar or via someother user interface. The translation is done by the client sidetranslation module 163 and is assisted and governed by the translationrule module 165 that contains the various algorithms, rules, andprocesses by which translation can be accomplished effectively and withhigh quality. The modules 163 and 165 could actually be a collection ofmultiple modules. This is especially true if multi-language translationsupport is provided by the web browser agent 151. FIG. 3 will providefor a detailed description of various client side multi-languagetranslators.

To perform search operation and translation-related functionalities, thesearch engine server 199 contains web crawler module 191, web pageranking and listing module 193, server-side language identificationmodule 195, and server side multi-language translator modules 197. Theserver side language identification module 195 determines a language ofa web page by searching through conjugate terms databases (not shown inserver 199, but similar or identical to database 167) embedded in thesearch engine server 199 and then retrieves appropriate language tag(s).Some pages or content may contain multiple languages, in the case of amulti-national site, in which case multiple languages need to beidentified. The conjugate terms databases 167 contain strings and termsfrom all of the supported languages in one column along with a languagetag in another column and a plurality of corresponding conjugatedestination language strings and terms in a series of succeedingcolumns. The server-side multi-language translator modules 197 translateweb pages in real time from the first/original language to the targetlanguage and deliver them to the web browser for viewing by a user. Ifthere are four supported languages, for example, then twelve translatormodules are employed to perform translations between all these twolanguage combinations. Therefore, the server-side multi-languagetranslator modules 197 may contain twelve translators, in this case. Theclient device 157 illustrated in FIG. 1 is communicatively coupled tothe search engine server 199 via an Internet 107.

For example, assume a student understands only a Czech language butintends to study in Barcelona, Spain. If this student were to download aweb page from a university site in Barcelona, the web page is probablyprovided in the Spanish language and the student is unable to comprehendthis web page and obtain necessary information. The student, havingaccess to the translation services of the search engine server 199,downloads the web browser agent or plug-in 151 from the website, andinstalls it in the computer's web browser. The student, beforedownloading the web browser agent 151, provides the information of thefirst language as Spanish language and the second language (to which itis necessary to be translated) as Czech language. This info may also beprovided at the website of the search engine server 199. The user thenreceives appropriately configured and specialized web browser agent 151that translates from Spanish language to Czech language. Meaning, abrowser or plug-in can be configured for a specific first language tosecond language translation, may be configured for a plurality oflanguage translations, for example, a plug-in that processes any one offour input language translated to any one of a targeted three languages.In yet another embodiment, the system can provide a plug-in or agentthat can process any input language to any output/target language,however, this plug-in would likely be expensive, complex, and consume alot of memory to enable, whereby a user may get all the functionalitythey need by simply selecting and installing translation capability foronly a handful of languages.

In our example, after the installation is complete, the web browseragent 151 provides a toolbar at the top of the web browser that containsbuttons to enable translation from the

Spanish to Czech language as well buttons and dropdown menus that allowthe student to utilize the multi-language translation services fromvarious Internet sources including that of the search engine server 199.Therefore, regardless of being online or offline, the student maylocally translate the downloaded and stored Spanish language web page tothe Czech language.

FIG. 2 is a schematic block diagram 205 illustrating components orcircuitry 207 of the search engine server 199 of FIG. 1. The searchengine server circuitry 207 provides translation services, inconjunction with a web browser agent 251 (similar to the agentillustrated in FIG. 1) installed on a client device 261, constructed inaccordance with the embodiments of FIG. 1 herein. The search engineserver circuitry 207 may in part or full be incorporated into anycomputing device that is capable of serving as an Internet based searchengine server, like server 199 of FIG. 1. The search engine servercircuitry 207 generally includes processing circuitry or CPU(s) 209,local storage/memory 217, manager interfaces 249, and network interfaces241. These components are communicatively coupled to one another via oneor more of a system bus, dedicated communication pathways, or otherdirect or indirect communication pathways as shown in FIG. 2. Theprocessing circuitry 209 may be, in various embodiments, amicroprocessor, a digital signal processor, a graphics processor, astate machine, an application specific integrated circuit, a fieldprogramming gate array, combinations thereof, or other processingcircuitry that is compatible with digital computing.

The network interfaces 241 contain wired and wireless packet-switched(and/or other) interfaces 245 and may also contain built-in or anindependent interface processing circuitry or CPU(s) 243. The networkinterfaces 241 allow the search engine server 207 to communicate withclient devices such as 261 and to deliver search result pages andprovide translation services to the client device 261 over the Internetor another network 255, in conjunction with the web browser agent 251.The manager interfaces 249 may include a display and keypad interfaces.These manager interfaces 249 allow the user at the search engine server207 to control operations in accordance with the present invention. Theclient device(s) 261 illustrated communicatively couple to the searchengine server 207 via an Internet 255.

Local storage 217 may be random access memory, read-only memory, flashmemory, a disk drive, an optical drive, or another type of memory thatis operable to store computer instructions and data. The localstorage/memory 217 stores instructions/data to instantiate a web pagecrawler module 221, a web page ranking and listing module 223, serverside language identification module 225, server side multi-languagetranslator modules 227, thesaurus databases 229, and conjugate termsdatabases 233. Often, these modules are software programs stored instorage or memory for execution by the processing circuitry 209. Inother embodiments, these modules may contain custom hardware, customperipherals, special input/output (I/O), etc. These modules 221, 223,225, 227, 229, and 233 allow the web browser agent 251 to utilize thetranslation services of the search engine server 207, in addition to theusual search and result delivery operations of the search engine server207. That is, the web browser agent 251 utilizes translation services ofthe search engine server 207 to translate a web page in real time from afirst/original language to a target/foreign language (selected by a userat the client device 261) and deliver the translated web page to the webbrowser at the client device 261.

The web browser typically downloads the web page from an Internet-basedhost server (see servers 115 in FIG. 1) by clicking on a web link in asearch results list found by the module 221 and provided for userviewing by the web page ranking and listing module 223 in response to aquery search string in a search language. In another embodiment,searching and translation can be performed by directly accessing contentfrom the host Internet server and/or by providing a web address forcontent from the browser. The web browser agent 251 identifies alanguage of the web page (the first/original language) and delivers theweb link of the web page, along with tags of the first/original languageand a target/foreign language, to the server-side multi-languagetranslator modules 227 for translation from the first/original languageto the target/foreign language (which could be any of the user selectedlanguage among the search engine server 207 supported or predeterminedand supported languages). The server side multi-language translatormodules 227 then translates the web page content from the first/originallanguage to the target/foreign language and delivers the translated webpage in the target language(s) to the web browser for display.

In a case where the first/original language tag is not received by theserver-side multi-language translator modules 227, the server-sidelanguage identification module 225 determines that language either bysearching through the conjugate terms databases 233, by identifying thedomain name of the web page, or by optical character recognition andpattern processing. The server-side multi-language translator modules227 contain a plurality of translators that support translation of webpages from one language to any of the other supported languages in realtime and delivery of the translated pages to the web browser. If thereare four supported languages, for example, then the server side multilanguage translator modules 227 may contain twelve translators, toperform translations from any original language to any of the otherlanguages.

In other embodiments, the search engine server 207 of FIG. 2 may includefewer or more components than are illustrated as well as lesser orfurther functionality. In other words, the illustrated search engineserver is meant to merely offer one example of possible functionalityand construction in accordance with the present invention.

FIG. 3 is a schematic block diagram 305 illustrating client-sidemulti-language translator modules 395 of the web browser agent 369(similar to agent 151 of FIG. 1), in a multi-language translationscenario. The web browser agent 369 contains a plurality of client-sidemulti-language translator modules 395 that translate web pages in realtime or off-line from a first language to a second language among all ofthe supported languages and displays these translations on screen usingtools in the web browser of a client device. In all, if there are foursupported languages, for example, then twelve real time translators areemployed to perform translations from any original language to any ofthe remaining target languages. Therefore, the client sidemulti-language translator modules 395 may contain twelve translators, inthis case, but may contain 2 modules, twenty modules, hundreds ofmodules, or thousands of modules in other embodiments.

The client side multi-language translator modules 395, for example, maycontain English-German translator module 331, English-French translatormodule 333, English-Hindi translator module 335 (and so on, covering allother supported languages, that is, English to all other targetlanguages that need translator modules), and German-English translatormodules 337 (and again covering all other desired supported targetlanguages, that is, German to all other languages translator modules).All two-language combinations need not be supported, for example,English to all the other languages can be supported, but onlytranslation from German to English is supported with English as a targetlanguage, for example. These translator modules 331, 333, 335, and 337function in real time and/or can be programmed to passively operateoff-line or when selected or enabled by a user or some other event otherthan the access to a page or internet content of interest.

For example, a user at the client device of FIG. 1 or 2 may download aweb page in the first (local) language and then translate the page usingtranslator modules 331, 333, 335, and 337. The translator modules ofFIG. 3 translate the downloaded web page after downloaded or during thereading of the page over the Internet (and whether while being online oroffline) into the second (foreign/target) language by clicking orselecting one or more buttons in the toolbar or some other event,provided by the web browser agent 369. The buttons may have a title suchas ‘Translate to Second Language’ and the second language can beselected among any of the predetermined languages such as English,German, French, Czech, Hindi, or Chinese languages using pull-down menusor other interfaces. And, the language available to the system fororiginal language recognition and target language translation may beselected by the user and added or deleted from in the future. To selectthe second/target/foreign language, the web browser agent 369 mayprovide a dropdown language selection menu in the toolbar or some otherinterface. The client-side multi-language translator modules 395translate the web page to the second/target language when initiated bythe user as mentioned above and, with the assistance of the web browsersoftware, displays the translated web page in the second language onscreen of the client device. The translations done by the client-sidemulti-language translator modules 395, such as translator modules 331,333, 335 and 337, are assisted and governed by multi-languagetranslation rule modules 339 which contains specific rules, processes,algorithms, special-cases, etc that assist in the translation processes.

FIG. 4 is a snap shot of a search result page 405 containing web linksof web pages in accordance with the embodiment of FIG. 1. Specifically,the snap shot illustrated in FIG. 4 shows a search result page 405delivered to client device browser 495 (a web browser and this snap shotpresumes a German original language browser). FIG. 4 contains a searchresult list 455 in the selected source/original language (German, inthis example) as shown via web links 457 and 459. These links aredisplayed on web browser screen in response to a search string ofenquiry, which in this example is ‘Patent Services’ 425, typed inEnglish into the browser. These links 457 and 459 vector to web pages intheir respective host servers in German language. To get these searchresults, the system has to translate patent services into a Germansearchable construct and find correlating web sites as search results.Then, these search results are presented to a user (and can be done inanother target or foreign language as taught herein). Then, as the userselects interesting search results, the system translates that contentbefore providing it to the user. Sometimes translation will require somepost processing that is graphical or spatial, as some language readright to left and some read left to right, and other languages areshorter or longer than original languages when translated. Therefore,some graphical or spatial correction may be needed.

The search result page 405 delivered may contain a page title such as‘Search Engine's Web Page (www.Search_Engine.com)’ 421, in the Germanlanguage. It may also contain a title such as ‘SEARCH ENGINE.COM’ 441(again, in the German language) and a tool bar 451 provided by the webbrowser agent (containing two buttons, titled ‘Translate to English’ and‘Multi-Language Translation at Server’, all in German language). Alanguage selection tool 449 is also provided, that allows user to choosea destination language (titled ‘Select Language’, in German language).In other embodiments, the interface may provide for a change in theoriginal language, thereby allowing the German contained on this page tobe converted to another language, such as English or French. A textentry such as ‘Enter Search String:’ 423 (in German language) and textbox 427 are provided to facilitate user's further search, in one of thewindows, and in this search area is entered the search string “PatentServices” 425 in FIG. 4. This window also contains a ‘Search’ 439 button(displayed in German language) to initiate a search operation.

In the snap shot of FIG. 4, the search result page 405 shows results forthe search string ‘Patent Services’ 425 (entered in English language,for example, by a foreign visitor). Again, if a user is having a hardtime interfacing to the screen of FIG. 4 given German languagedifficulties, the user can be prompted in English on FIG. 4 to convertthe screen of FIG. 4 to another language for improved comprehension bythe user. The search results based upon the English string ‘PatentServices’ is provided in a second window such as links 457 and 459.Search results are provided in the window having a title ‘SearchResults’ 455 and results may be displayed in German language. Again, ifthe user cannot read these results, the user may opt to have these linksand search result sections translated to another language, in this case,likely English since the search string is entered in English. The searchresult page 405 and client browser page 495 shown in FIG. 4 alsocontains the ‘prey’ 485 and ‘next’ 489 buttons (displayed in Germanlanguage) to access prior displayed search result pages and thesubsequent search result pages, respectively.

FIG. 5 is a snap shot 505 of a web page in a local (German) language.FIG. 5 shows FIG. 4 as it would look upon clicking on a web link in thesearch result page of FIG. 4. the information on FIG. 4 is superimposedwith a web page translated to a foreign (English) language by the webbrowser agent of client device in FIG. 5, in accordance with the systemconfiguration and embodiment of FIG. 1. Specifically, the snap shot 505illustrated in FIG. 5 shows two web pages, one superimposed on another.The one web page 511 that is underneath (only partly visible in the FIG.5 illustration) is a web page in German language, downloaded from anInternet server in response to the clicking of a web link‘www.iipservices.com’ in FIG. 4. This web page contains a page title inGerman language—equivalently in English ‘Search Engine's Web Page(www.Search_Engine.com)’ 511. And, a web browser agent provides atoolbar containing tools for translating the page and related content toEnglish and performs additional multi-language translation at theserver, followed by a language selection dropdown menu. The illustrationof the underneath web page 511 in German language shows a title and atext in German language (only partly visible in illustration).

As a result of a user clicking on a button for translating to English,the superimposed web page in the client browser 595 (i.e., an Englishtranslated web page, fully visible in the illustration) is constructedby the web browser agent. After translation to English is complete, theEnglish information is displayed on another window as shown in FIG. 5.Again, spatial, graphical, and other screen processing may need to occurto render the English version readable as compared to the Germanversion. The translated web page contains a page title ‘IIP Service'sWeb Page (www.iipservices.com)’ 521 (translated from German to Englishlanguage). It also contains a title such as ‘IIP SERVICES.COM’ 541(again, translated from German to English language) and a tool bar 551provided by the web browser agent (containing two buttons, titled‘Translate to English’ and ‘Multi-Language Translation at Server’, alldisplayed in English language). A language selection tool 549 is alsoprovided, and this tool allows user to choose a destination language(titled ‘Select Language’, displayed in English language).

The translated web page shows translated text in the web page in anotherwindow, displayed in the English language. Note, even within a singlelanguage, there may be versions. For example, English is slightlydifferent in the US verses England versus Australia. The same is truefor Spanish and other languages. Therefore, a single language may havedifferent translation processes for a target area, demographic, orcountry. A title for the translated text is also provided for the user'sbenefit, such as ‘Translated Text (From German to English)” 555. Theillustration also shows a translated English language text 557. Thetranslated web page also contains the ‘prey’ 585 and ‘next’ 589 buttons(displayed in English language) to access prior displayed search resultpages and the subsequent search result pages, respectively.

FIG. 6 is a flow diagram 605 illustrating the functionality of the webbrowser and web browser agent of FIG. 1, during a translation process.The functionality 605 begins at a block/step 607, where the web browsersends a search string in an entry language to the search engine server.Then, at a next block/step 609, the web browser receives web links in asearch result page in an original language. At a next block/step 611,the web browser initiates the opening of a web page in the originallanguage, upon a user at the client device clicking on a web link in thesearch result page. Then, the opened web page in the original languageis displayed on the screen, by the web browser.

For example, a foreign visitor to Germany, who understands English only,may intend to search for web links in a local language (say, in Germanlanguage, the first/original language) and provides a search string inweb browser in English (the second/entry/search language) and as aresult obtains the search results that vector to German language webpages. Then, the user utilizes the services of the web browser agent totranslate an opened web page to an English language (that is, from thefirst/original language to the second/entry/target language).

Upon a click from the user on a button provided by the web browser agent(such as a ‘Translate to First Language’ Tab Button) to translate fromthe first/original language to the second/target language, at a nextblock/step 613, the web browser agent identifies the first language (thelanguage of the web page) by using few terms from the web page andutilizing a conjugate terms database or by other means. The conjugateterms database consists of words and strings in a plurality ofpredetermined languages succeeded by a plurality of words and stringsexpressing precise or approximate meanings in rest of the predeterminedlanguages, along with respective language tags. The other means ofidentifying the language of the web page may include identifying thelanguage tag of few characters in the web page by using a databasecontaining alphabets in various languages succeeded by language tags orby identifying the domain name of the web page, or by characterrecognition, pattern recognition, language tag requirements in HTML/XML,etc.

At a next block/step 615, the web browser agent translates the web pageto the second/target language, by using translator modules that arebuilt-in to the system. At a next block/step 617, the web browser agentdisplays the web page translated to the second/target language, with thehelp of tools in web browser, and in a different window (or in thesingle window in a next page) in one embodiment.

FIG. 7 is a flow diagram 705 illustrating the functionality of the webbrowser and web browser agent of FIG. 1. The functionality 705illustrated in FIG. 7 is the functionality during a translation processthat occurs in conjunction with search engine server's translationservices. The functionality 705 begins at a block/step 707, where theweb browser sends a search string in a second language to the searchengine server of FIGS. 1-2. At a next block/step 709, the web browserreceives web links in a search result page in first/original languageand upon clicking on a web link in search result page the web browseropens the web page in the first/original language.

At a next block/step 711, upon clicking ‘multi language translation atserver’ tab button, the web browser agent identifies the first/originallanguage (the default language of the web page) by using few terms fromthe web page and conjugate terms database or by other means taughtherein (such as, by identifying the language tag of few characters inthe web page by using a database containing alphabets in variouslanguages succeeded by language tags or by identifying the domain nameof the web page). At a next block/step 715, the web browser agentrequests for the web page to be translated to another language (whichmay be different from the search string language that was used or theoriginal language used by the web content). Translation is requested bysending web link of the web page, translation request, and targetlanguage name to the search engine server. At a final block/step 717,the web browser receives and displays the web page content as translatedto the target language in a different browser page or window.

For example, the web browser may download the web page from anInternet-based host server by clicking on a web link in search resultsprovided by the search engine server in response to a query searchstring in English language (the second/entry language) or by directlyaccessing from the host internet server by providing web address. Then,the web browser agent identifies language of the web page (Germanlanguage, the original language, for instance) and delivers the web linkof the web page, along with tags of the German language and Englishlanguage (a target language, which may also be any other language ratherthan English), to the search engine server for translation from theGerman language to the English language.

The search engine server in turn translates the German language web pageto an English language and delivers the translated English language webpage to the web browser for display. If the German language tag is notreceived by the search engine server, then the search engine serverdetermines the language either by searching through the conjugate termsdatabases or by identifying the domain name of the web page. The searchengine server contains a plurality of translators that supporttranslation of web pages from one language to any of the other supportedlanguages in real time and deliver them to the web browser.

FIG. 8 is a flow diagram 805 illustrating functionality of the searchengine server of FIG. 1 during a translation process that is initiatedby a web browser agent in a client device. The functionality 805 beginsat a block/step 807, when the search engine server receives a searchstring in a second/target language from the client device. At a nextblock/step 809, the search engine server delivers a first search resultpage, containing web page links in a first/original language. Then, at anext block/step 811, the search engine server receives a request for aweb page to be translated to a third/final language, along with weblink, translation request, and third/final language tag.

At a next block/step 813, the search engine server retrieves the webpage vectored by the web link, from a cache database or Internet basedhost server. Then, at a next block 815, the search engine serveridentifies the language tag of the web page to be translated by usingconjugate terms database or by other means taught herein (i.e.,identification of the language tag of characters in the web page byusing a database containing alphabets in various languages succeeded bylanguage tags or identification of language tag by determining thedomain name of the web page). At a next block/step 817, the searchengine server translates in real time from the first/original languageto the third/final language using server side multi language translatormodules. Finally, at a final block/step 819, the system deliverstranslated web page to be displayed in a second browser page.

For example, the search engine server (as soon as it receives a web linkof a web page (say, Spanish language) and information along with thefirst language tags (Spanish language) and the third language (say,Czech language) tags and a request for translation) identifies theSpanish language tag belonging to the web page by searching throughconjugate terms databases embedded in the search engine server and thenretrieves the Spanish language tag. The conjugate terms databases, forexample, contains many strings and terms from the Spanish language(along with all other supported languages) in one column along withSpanish language tags in another column and a plurality of correspondingconjugate English language strings and terms (as well as that of allother supported languages) in a series of succeeding columns. Thelanguage identification may also take other forms. Then, the searchengine server translates the Spanish language web page in real time toEnglish language and delivers it to the web browser.

The terms “circuit” and “circuitry” as used herein may refer to anindependent circuit or to a portion of a multifunctional circuit thatperforms multiple underlying functions. For example, depending on theembodiment, processing circuitry may be implemented as a single chipprocessor or as a plurality of processing chips Likewise, a firstcircuit and a second circuit may be combined in one embodiment into asingle circuit or, in another embodiment, operate independently perhapsin separate chips. The term “chip,” as used herein, refers to anintegrated circuit. Circuits and circuitry may include general orspecific purpose hardware, or may include such hardware and associatedsoftware such as firmware or object code.

As one of ordinary skill in the art will appreciate, the terms “operablycoupled” and “communicatively coupled,” as may be used herein, includedirect coupling and indirect coupling via another component, element,circuit, or module where, for indirect coupling, the interveningcomponent, element, circuit, or module may or may not modify theinformation of a signal and may adjust its current level, voltage level,and/or power level. As one of ordinary skill in the art will alsoappreciate, inferred coupling (i.e., where one element is coupled toanother element by inference) includes direct and indirect couplingbetween two elements in the same manner as “operably coupled” and“communicatively coupled.”

The present invention has also been described above with the aid ofmethod steps illustrating the performance of specified functions andrelationships thereof. The boundaries and sequence of these functionalbuilding blocks and method steps have been arbitrarily defined hereinfor convenience of description. Alternate boundaries and sequences canbe defined so long as the specified functions and relationships areappropriately performed. Any such alternate boundaries or sequences arethus within the scope and spirit of the claimed invention.

The present invention has been described above with the aid offunctional building blocks illustrating the performance of certainsignificant functions. The boundaries of these functional buildingblocks have been arbitrarily defined for convenience of description.Alternate boundaries could be defined as long as the certain significantfunctions are appropriately performed. Similarly, flow diagram blocksmay also have been arbitrarily defined herein to illustrate certainsignificant functionality. To the extent used, the flow diagram blockboundaries and sequence could have been defined otherwise and stillperform the certain significant functionality. Such alternatedefinitions of both functional building blocks and flow diagram blocksand sequences are thus within the scope and spirit of the claimedinvention.

One of average skill in the art will also recognize that the functionalbuilding blocks, and other illustrative blocks, modules and componentsherein, can be implemented as illustrated or by discrete components,application specific integrated circuits, processors executingappropriate software and the like or any combination thereof. Althoughnot specifically shown herein, the client devices taught in FIGS. 1-2have memory, network interface circuitry, and memory/storage in a mannersimilar to any consumer client device (such as a printer, cell phone,PDA, etc) or any personal computer, server, or mobile computer device.Therefore, the client devices taught herein have similar computerinternal components as shown for the server in FIG. 2 herein whereby theweb agent 151 and related software components are rendered functional bya CPU, memory, and/or I/O circuitry. It is also important to note thatthe web content translation steps, search string translation processing,language identification processing, etc., can be performed by a smartclient device or by one or more servers in a centralized cloud computingenvironment. Therefore, all the functions and features taught for aclient device herein may also be performed on a search engine serverdevice or some other server, and vice versa.

Moreover, although described in detail for purposes of clarity andunderstanding by way of the aforementioned embodiments, the presentinvention is not limited to such embodiments. It will be obvious to oneof average skill in the art that various changes and modifications maybe practiced within the spirit and scope of the invention, as limitedonly by the scope of the appended claims.

1. A method set forth in computer program code that governs operationsof a user's device of a user, the operations relating to interactionwith a web search infrastructure, the user having a preference for afirst human language, the method comprising: directing the user's deviceto interact with the web search infrastructure to receive search resultspage data, at least a portion of the received results page data being ina second human language; directing the user's device to detect thesecond human language by evaluating the received search result pagedata; directing the user's device to produce a first visual presentationrelating to the received results page data, at least a portion of thefirst visual presentation being in the second language, and the firstvisual presentation having a first visual layout; directing the user'sdevice to process a user's request to translate associated with thefirst visual presentation; and directing the user's device to produce asecond visual presentation based at least in part on translationresults, the second visual presentation using superimposition in anattempt to maintain the first visual layout.
 2. The method of claim 1,wherein any changes to the first visual layout are made to supportspatial differences introduced by the translation results.
 3. The methodof claim 1, wherein the second visual presentation involves an overlayprocess relating to the first visual presentation.
 4. The method ofclaim 1, wherein the translation results are received from the websearch infrastructure.
 5. The method of claim 1, wherein the translationresults are produced by the user's device.
 6. The method of claim 1,wherein the computer program code comprises browser software.
 7. Themethod of claim 1, wherein the computer program code comprises multiplesoftware applications.
 8. A web browsing software application operableon a user device that supports Internet based interaction with a websearch infrastructure, the user device of a user that has a preferencefor a first human language, the user device having a screen, the webbrowsing software application comprising: program code that is operableto direct the user device to evaluate first web page data identified viareceived search results, the evaluation to result in an identificationof at least a portion of the first web page data as being of a secondhuman language; the program code that is operable to direct the userdevice to produce a first visual presentation on the screen based on thefirst web page data, the first visual presentation having a first visuallayout; the program code being operable to direct the user device torespond to user input by (i) sending a translation request to the websearch infrastructure, and (ii) superimpose at least a portion of asecond visual presentation on the screen, the second visual presentationbeing produced based on translation results received, and the secondvisual presentation substantially maintaining the first visual layout.9. The web browsing software application of claim 8, wherein any changesto the first visual layout are made if needed to support spatialdifferences introduced by the received translation results.
 10. The webbrowsing software application of claim 8, wherein the second visualpresentation involves an overlay process relating to the first visualpresentation.
 11. The web browsing software application of claim 8,wherein the translation results are received from the web searchinfrastructure.
 12. The web browsing software application of claim 8,wherein the translation results are produced by the user device.
 13. Theweb browsing software application of claim 12, wherein the production ofthe translation results is performed by the program code.
 14. The webbrowsing software application of claim 12, wherein the translationresults are performed by a supporting program code.
 15. The web browsingsoftware application of claim 8, wherein all second language text of thefirst visual presentation is represented by first language text in thesecond visual presentation.
 16. A web search system that supports a userdevice of a user via an Internet, the user having a preference for afirst human language, the web search system comprising: a processinginfrastructure that gathers a plurality of web page data relating to aplurality of web pages hosted on the Internet via a crawling process,the plurality of web page data representing text in a plurality of humanlanguages; a communication interface through which the processinginfrastructure interacts with the user device; the processinginfrastructure responds to a first request by delivering to the userdevice at least a portion of search results in a second language, thedelivery supporting a first visual presentation on the user device; andthe processing infrastructure responds to a second request by supportinga second visual presentation on the user device, the second visualpresentation resulting from an overlay process relating to the firstvisual presentation, the overlay process involving reusing a firstvisual layout associated with the first visual presentation along withmaking insertions of translated text within the first visual layout. 17.The web search system of claim 16, wherein the supporting of the secondvisual presentation comprises performing translation of those portionsthe first visual presentation in the second human language to the firsthuman language.
 18. The web search system of claim 17, furthercomprising at least one database that stores pre-translated text datafor at least some of the plurality of web pages.
 19. The web searchsystem of claim 18, wherein the at least some of the plurality of webpages correspond to those being in a first selected set of humanlanguages.
 20. The web search system of claim 19, wherein a secondselected set of human languages are to be translated on the user device.21. The web search system of claim 16, wherein the supporting of thesecond visual presentation comprises automatically identifying thesecond human language.
 22. The web search system of claim 16, whereinthe second request comprises a translation related request.
 23. The websearch system of claim 16, wherein the processing infrastructure and theuser device provide translation related support and coordinatetranslation related duties.
 24. A method performed by a web searchsystem that supports a user device of a user via an Internet, the userhaving a preference for a first human language, the method comprising:gathering a plurality of web page data relating to a plurality of webpages hosted on the Internet via a crawling process, the plurality ofweb page data representing text in a plurality of human languages;responding to a first request by delivering to the user device at leasta portion of search results in a second language, the deliverysupporting a first visual presentation on the user device; andresponding to a second request by supporting a second visualpresentation on the user device, the second visual presentationresulting from an overlay process relating to the first visualpresentation, the overlay process involving reusing a first visuallayout associated with the first visual presentation along with makinginsertions of translated text within the first visual layout.
 25. Themethod of claim 24, wherein the supporting of the second visualpresentation comprises performing translation of those portions thefirst visual presentation in the second human language to the firsthuman language.
 26. The method of claim 25, wherein further comprisingstoring pre-translated text data for at least some of the plurality ofweb pages.
 27. The method of claim 26, wherein the at least some of theplurality of web pages correspond to those being in a first selected setof human languages.
 28. The method of claim 27, wherein the at leastsome of the plurality of web pages correspond to those being in a firstselected set of human languages.
 29. The method of claim 28, wherein asecond selected set of human languages are to be translated on the userdevice.
 30. The method of claim 24, wherein the second request comprisesa translation request.